Computer users today can choose from a wide variety of different peripherals to connect to their computers. Printers, such as inkjet and laser printers, allow users to print hard copies of their documents, images, and files. Digital cameras allow users to take digital pictures, which can then be imported into their computers for subsequent modification, sharing, and printing. Scanners allow users to scan in printed documents into their computers as digital images, for dissemination to others, for storage, and for conversion to word processing files. Multi-function devices allow users to print, scan, fax, and/or and perform other functions.
Many operating systems have built-in mechanisms that allow for easier installation of hardware devices than in the past. For instance, an operating system may automatically detect a new device connected to a computer, and offer the user automatic installation of software for the device in what is referred to herein as an automatic installation mode. The WINDOWS family of operating systems, for instance, which is available from Microsoft Corp., of Redmond, Wash., supports such a mode, which is referred to as Plug and Play. The user plugs in a device into a hardware port, such as a Universal Serial Bus (USB) port, of the computer. The operating system immediately detects the new device, and offers to install software for the device.
Unfortunately, the automatic installation mode found in such operating systems frequently conflicts with the instructions provided by hardware device manufacturers for installing software for their devices. An operating system typically only includes the minimum amount of special software, called drivers, for such devices, and even then typically only for common hardware that was available when the operating system was initially released. Drivers are the low-level software that enable computer programs running on the computer to communicate with hardware devices, typically through the operating system of the computer.
However, because hardware manufacturers are constantly releasing new and improved devices, they usually provide updated drivers with their hardware for users to install prior to connecting the hardware to a computer. These drivers may not be available to the operating system unless they are initially copied to the computer as recommended by the manufacturers. Furthermore, drivers for less common and obscure devices may not be included with the operating system even if they were available when the operating system was released. Therefore, the hardware manufacturers in such cases must provide the drivers.
In addition, the hardware manufacturers may include other software for their devices that complement the drivers and allow for easier and more optimal use of the hardware. Such complementary software is above and beyond the low-level software that is the bare minimum the operating system needs to allow computer programs to use the hardware. The manufacturers may also include software to enable online registration for the user's newly purchased hardware, as well as to provide other functionality. The hardware manufacturers thus may instruct the users to install their software first, before the automatic installation mode is initiated to finalize the installation.
FIG. 1 shows a method 100 outlining the general process of software installation for a hardware device as may be followed and recommended by a hardware manufacturer. The method 100 is referred to as a software-first installation in that software for the device is installed on the computer before the device is connected to the computer. First, the user starts the installation of the software by running an installer program (102). The installer program may query the user as to what parts of the software available for installation the user wishes to install (104). The program copies the necessary and appropriate files to the computer (106), and then instructs the user to connect the hardware to the computer to complete the installation (108).
However, users are many times impatient, plugging the cable for the hardware into a corresponding connector of the computer before installation of the software has been completed. Alternatively, the user may simply be following the operating system's recommendation or suggestion of being able to connect the hardware to the computer before installing any software for the hardware. FIG. 2 shows a method 200 outlining what occurs when the user connects the hardware before the software installation of FIG. 1 has been completed. The user connects the device to the computer before being instructed to do so by the installer program (202). In response, the operating system, assuming it can immediately detect the new hardware, initiates its automatic hardware installation mode (204).
As has been indicated, the automatic hardware installation mode of the operating system may contradict the software-first installation recommended by the manufacturer of the device. The automatic hardware installation mode, also referred to as a hardware-first installation, in that the hardware is connected to the computer before the software for the hardware is installed, may present conflicting instructions to the user as compared to the software-first installation. Inexperienced and novice users may become confused, not knowing whether to follow the instructions of the software-first installation, or those of the hardware-first installation.
This scenario is depicted in FIG. 3, in which a software installation window 302 is first shown to the user in which instructions are provided by the manufacturer of the device as to installation of software for the device, such as drivers, complementary computer programs, and so on. However, if the user connects the device to the computer prior to completion of the software-first installation, a second window 304 appears. The window 304 is an automatic hardware installation window, and may overlap the software installation window 302. The instructions provided in the window 304 are given by the operating system as part of a hardware-first installation, and may contradict the instructions provided by the device manufacturer in the window 302 as part of a software-first installation.
The difficulties with installation of software for hardware devices that have been described generally occur with devices that can be immediately detected by the operating system when they are connected to the computer. Such devices usually plug into a USB port, an IEEE 1394 port, which is also referred to as a FireWire port or an i-Link port, or another port of the computer that is hot. A hot port is one into which a cable for a device can be plugged while the computer is on, desirably for immediate detection by the operating system. For some operating systems, the parallel port, which is also referred to as the IEEE 1284 port, is also a hot port.
Other devices, however, cannot be immediately detected by the operating system when they are connected to the computer. Such devices usually plug into a serial port, or another port of the computer that is cold, meaning that a cable for a device should be plugged into the port while the computer is off. For some operating systems, the parallel port is also a cold port. The operating system usually can only detect such devices when first booting up. That is, connecting a device to such a port of the computer does not usually result in the operating system immediately detecting the device without prompting.
A difficulty with software installation for this latter type of hardware device is that the computer may have to be rebooted before the operating system becomes aware of the new hardware. For instance, whereas devices connected to the computer via USB and other hot ports generally do not require rebooting, devices connected to parallel and other cold ports generally require rebooting. The user typically installs software for the new device, and then is instructed to connect the device to the computer and reboot the computer to finish the installation process. Alternatively, after installing the software, the user may be instructed to turn off the computer, connect the device to the computer, and then turn back on the computer.
However, rebooting is at best an inconvenient process for the user. Even modern operating systems can take upwards of five minutes or more to reboot. The exact amount of time depends on the type and speed of the computer, the number of peripherals installed on the computer, the amount of software that is always loaded at startup, as well as other factors.
Therefore, both for devices that can be immediately detected by the operating system when connected to the computer, and for devices that cannot be immediately detected by the operating system when connected to the computer, there are disadvantages to current processes for installing software for such devices. That is, both for devices that have cables that connect to hot ports of the computer and for devices that have cables that connect to cold ports of the computer, there are disadvantages to current software installation routines for such devices. For these and other reasons, there is a need for the present invention.